package A与java区别

import groovy.transform.PackageScope

import java.nio.file.Paths

/**
 *
 * 所有这些包和类都是默认导入的，即您不必使用显式import语句来使用它们：
 java.io.*
 java.lang.*
 java.math.BigDecimal
 java.math.BigInteger
 java.net.*
 java.util.*
 groovy.lang.*
 groovy.util.*
 */

int method(String arg) {
    return 1;
}
int method(Object arg) {
    return 2
}
Object o = "Object";
// java会执行2，因为java是静态编译，o声明为Object。
// Groovy 在运行时选择，o调用的String，所以String版本被调用。

int result = method(o);
println result


int[] array = [1, 2, 3]
def array2 = new int[] {1, 2, 3}


// 不用权限修饰符，默认使用的public
class Person {
    // 私有字段
    @PackageScope String name;

    private String username

    private String email;  // 这样就没有 getter setter, 不可用访问

    int age; // 无权限修饰时,  默认生成 getter / setter

    String getUsername() {
//        return username; // return 可以省略
        username;
    }

    void setUsername(String username) {
        this.username = username;
    }
}

